<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ page import="java.util.*,java.io.*"%>
<%@ page import="java.text.SimpleDateFormat"%>

<%@ page import="org.springframework.web.multipart.MultipartFile"%>

<html><head><title>download</title></head>

<body bgcolor="#ffffff">
<%--
	文件下载
--%>
<%
try {
	//得到文件路径(数据库存放路径)
	String docPath ="D:\\q\\";
	out.print(docPath);
	//得到文件名称
	String docName = request.getParameter("filename");
	out.print(docName);
	//下载文件名
	String newName = docName + docPath.substring(docPath.indexOf('.'));
	out.print(newName);
	//得到文件在服务器中的路径
	String rootPath = pageContext.getServletContext().getRealPath("/");
	out.print(rootPath);
	//清空response 所有信息
	response.reset();
	//设置IE浏览器内容类型 表示为 下载
	response.setContentType("application/x-download;charset=UTF-8");
	//设置IE浏览器的 头
	response.setHeader("Content-Disposition","attachment;filename=" + newName);
	//从服务器上 读取文件
	File file=new File(rootPath+docPath);
	response.setContentLength(Integer.valueOf(((Long)file.length()).toString()));
	//输入流   读取目标文件
	FileInputStream  fis=new FileInputStream(file);
	int len=-1;
	byte[] data=new byte[1024];
	ByteArrayOutputStream bos=new ByteArrayOutputStream(1024);
	//文件读到最末尾 返回 -1
	while((len=fis.read(data))!=-1){
		//将服务器中的数据 转换成二进制数组 放入内存中
		bos.write(data,0,len);
	}
	//将 服务器上的文件转换成 二进制数组   OutPutStream 输出流 写入对应文件中
	OutputStream os= response.getOutputStream();
	//从服务器 拿到数据 向客户端进行写入
	os.write(((MultipartFile) bos).getBytes());
	//清空内存文件 向客户端写入
	os.flush();
	//关闭输出流
	os.close();
	//注：如果不加out.clear()和out = pageContext.pushBody()这两句，运行后台会打印错误信息
	//本人也是费了好半天劲才解决，这就直接附上了
	//希望大家那些报错的小伙伴们少走弯路
	
	//关闭输入流
	fis.close();
	
	}catch(Exception e){
		
	}
%>
</body>
<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
<script language="javascript">
/*  $(function(){
	/* var a=document.getElementById("save").value; 
	

	
	$.post("../crm32/url.action",{"save":a},function(data){
		
	location.href="GongWenNew"; 
		 
	});
});  */




</script>

</html>

